{{tag>programmation compilation java}}
===== Installation =====

Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://gcc|gcc]]**.

À noter que lorsque l'on installe le paquet virtuel ''build-essential'', il est fait appel à GCC pour la partie compilation. Mais cela ajoute d'autres utilitaires comme [[Make]] qui sont généralement nécessaires à toute compilation plus poussée que le simple bout de code. Il est donc conseillé d'installer directement **[[apt://build-essential|build-essential]]**.

==== Installer une autre version (…plus récente) ====

Si vous ne savez pas quelle version vous voulez installer, vous pouvez exécuter:
<code>
dpkg -l gcc*
</code>

Puis, exécutez la liste suivante de commandes((http://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-on-ubuntu/581497)) en remplaçant si besoin le 5 par le numéro de version voulue:
<code>
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5
</code>
===== Utilisation =====

==== en C ====
On peut appeler GCC directement par ligne de commande ou à travers un [[wpfr>Environnement de développement intégré|EDI]]. On pourra se reporter à la [[programmation|page générique sur la programmation]] pour une liste d'EDI par langage.

Basiquement, la syntaxe est la suivante (exécution dans un [[terminal]]) :
  gcc code.ext -o binaire 
en remplaçant bien sûr ''code.ext'' par le fichier source d'entrée et ''binaire'' par le fichier de sortie souhaité. À défaut de paramètre //output file// (''-o binaire''), gcc créera ''a.out''.

À noter qu'il faut se trouver dans le dossier où se situe le fichier.c. 

==== en C++ ====
Utilisation classique :

<code> g++ fichier.cpp -std=c++11 -Wall -Wextra -o fichier_executable </code>

<code>-o fichier_executable </code>

-o pour output, permet de définir le fichier de sortie. Si absent, le fichier créé est nommé a.out

Détermine le langage standard((https://isocpp.org/std/the-standard)):
<code>-std=c++14</code>

Compilation simple (sans assemblage) :
Pour simplement compiler afin de vérifier l'absence d'erreur (ou plutôt voir ses erreurs), on utilise :
<code>g++ -S fichier.cpp</code>

Warnings:
pour que le compilateur retourne des warning sur des parties de codes qui lui semble incorrecte, on utilise généralement :
<code>-Wall</code>

on retrouve la liste des options que cela englobe à l'adresse ci-dessous:\\
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html\\
on peut compléter -Wall avec
<code>-Wextra</code>

Optimisation:
-O1 ou -O2 ... ou -O3

Quelle version utilise-t-on?
<code>g++ --version</code>
\\
Pour une liste exhaustive des multiples options ou optimisations et pour une syntaxe détaillée de GCC, consulter la [[man|page de manuel]] de gcc (longue de plus de 15000 lignes) .

===== Exécution =====

  * Pour exécuter le programme/fichier binaire généré par le GCC, programmé en c par exemple, avec un fichier nommé "BinaireTest"  
  * <code>./BinaireTest</code>


----

//Contributeurs : [[utilisateurs:Johndescs]], [[utilisateurs:bcag2]], [[utilisateurs:bensuperpc]]//


===== Liens =====

  * Site officiel : [[http://gcc.gnu.org|GCC, the GNU Compiler Collection]] [en]
  * Wikipedia : [[wpfr>GNU_Compiler_Collection|Page sur GCC]] [fr]
  * Tutoriel gcc : [[http://fr.openclassrooms.com/informatique/cours/compilez-sous-gnu-linux|Compilez sous GNU/Linux]] [fr]

  * [[gdb|Débugage avec gdb]]


----

//Contributeurs : [[utilisateurs:Johndescs]], [[utilisateurs:bcag2]]//